Conversations Are Not Flat Modeling the Dynamic Information Flow across Dialogue Utterances

本文提出了建模对话动态信息流的方法DialoFlow,引入dynamic flow 动态流机制通过处理每个话语带来的语义影响来模拟整个对话历史中的动态信息流。

Introduction

现有的建模对话历史的方法主要分为两种。一种是直接拼接对话历史,这种方法在某种程度上忽略了对话历史中跨句子的对话动态。另外一种是多层次建模,首先对每句话做表示,再对整个对话做表示,这种方法在对每句话做表示时忽略了其他句子的作用。

本文提出了建模对话动态信息流的方法DialoFlow,引入dynamic flow 动态流机制通过处理每个话语带来的语义影响来模拟整个对话历史中的动态信息流。在Reddit上进行了预训练,实验表明,DialoFlow在对话生成任务(Reddit multi-reference、DailyDialog multi-reference)上明显优于DialoGPT。此外,本文还提出了Flow score,一种基于预训练的DialoFlow的评价人机交互对话质量的有效自动度量,在DSTC9交互式对话评估数据集上的评估结果与人工评估一致性达到0.9。

Method

设 $D = u_{1},u_{2}, … ,u_{N}$ 表示整个对话,对于每一条话语 $u_{k}=\left\{u_{k}^{1}, u_{k}^{2}, \ldots, u_{k}^{T}\right\}$,其中$u_{k}^{t}$表示第k条话语中的第t个单词,$u_{<k}=\left\{u_{1}, u_{2}, \ldots, u_{k-1}\right\}$为第k条话语的历史对话,也就是上下文$C_{k}$, $C_{k + 1}$ 和 $C_{k}$ 间的差异定义为semantic influence $I_{k}$:
$$
\mathbf{I}_{k}=\mathbf{C}_{k+1}-\mathbf{C}_{k}
$$
DialoFlow首先对对话历史进行编码,并根据历史上下文$C_{1},…,C_{k}$预测未来的上下文$C^{‘}_{k+1}$。然后在回复生成阶段,模型预测 semantic influence $I^{‘}_{k}$,并结合$I^{‘}_{k}$和历史子句生成目标回复$u_{k}$。

为了捕获对话话语中的动态信息流,本文设计了一个Flow模块来模拟语境变化。Flow模块的结构与一层transformer block相同,接受前面所有的上下文$C_{1},…,C_{k}$作为输入,并预测第(k+1)条话语的上下文$C_{k + 1}^{‘}$:
$$
\mathbf{C}_{k+1}^{\prime}=\operatorname{Flow}\left(\mathbf{C}_{1}, \mathbf{C}_{2}, \ldots, \mathbf{C}_{k}\right)
$$
以及预测第k个话语引起的语义影响$I^{‘}_{k}$:
$$
\mathbf{I}_{k}^{\prime}=\mathbf{C}_{k+1}^{\prime}-\mathbf{C}_{k}
$$
与传统的上下文-回复的训练方法不同,DialoFlow是用包含N个话语的整个对话进行训练,相应地设计了三个训练任务来优化模型:

  • Context Flow Modeling: $$
    \mathcal{L}_{C F M}=\sum_{k=1}^{N}\left|\mathbf{C}_{k}-\mathbf{C}_{k}^{\prime}\right|_{2}^{2}
    $$
  • Semantic Influence Modeling: $$
    \begin{aligned}
    \mathcal{L}_{S I M} &=-\sum_{k=1}^{N} \sum_{t=1}^{T} \log p\left(u_{k}^{t} \mid \mathbf{I}_{k}^{\prime}\right) \\
    &=-\sum_{k=1}^{N} \sum_{t=1}^{T} \log f_{u_{k}^{t}}
    \end{aligned}
    $$
    $$
    f=\operatorname{softmax}\left(W_{2} \mathbf{I}_{k}^{\prime}+b_{2}\right) \in \mathbb{R}^{|V|}
    $$
  • $$
    \begin{aligned}
    \mathcal{L}_{R G M} &=-\sum_{k=1}^{N} \log p\left(u_{k} \mid \mathbf{I}_{k}^{\prime}, u_{<k}\right) \\
    &=-\sum_{k=1}^{N} \sum_{t=1}^{T} \log p\left(u_{k}^{t} \mid \mathbf{I}_{k}^{\prime}, u_{<k}, u_{k}^{<t}\right)
    \end{aligned}
    $$

Flow Score

聊天机器人的话语所带来的语义影响与期望之间的差距越小,就越像人类。本文提出了一种基于DialoFlow的交互式对话评价的自动无参考指标Flow score,当机器人生成一个新的话语$u_{k}$时,测量$u_{k}$所带来的预测语义影响$I^{‘}_{k}$与真实语义影响$I_{k}$之间的相似度作为该话语与人类相似的概率:
$$
\begin{aligned}
s_{k} &=\cos \left(\left\langle\mathbf{I}_{k}^{\prime}, \mathbf{I}_{k}\right\rangle\right) \cdot \operatorname{length}\left(\mathbf{I}_{k}^{\prime}, \mathbf{I}_{k}\right) \\
&=\frac{\mathbf{I}_{k}^{\prime} \cdot \mathbf{I}_{k}}{\left|\mathbf{I}_{k}^{\prime}\right|\left|\mathbf{I}_{k}\right|} \cdot \frac{\min \left(\left|\mathbf{I}_{k}^{\prime}\right|,\left|\mathbf{I}_{k}\right|\right)}{\max \left(\left|\mathbf{I}_{k}^{\prime}\right|,\left|\mathbf{I}_{k}\right|\right)}
\end{aligned}
$$
引入长度相似度是为了考虑长度差异对语义相似度的影响。对于聊天机器人在对话中的整体质量,本文设计的Flow score,可以视为对话级困惑度:
$$
\text { Flow score }=2^{-\frac{1}{M} \sum_{k}^{M} \log \left(\frac{s_{k}+1}{2}\right)}
$$

Experiment